#ifndef DAILYALARMCHART_H
#define DAILYALARMCHART_H

#include <QWidget>
#include <QLabel>
#include <QDateTime>
#include <QVector>

// 报警数据点结构
struct AlarmDataPoint
{
    QDateTime timestamp;
    int count;

    AlarmDataPoint(const QDateTime &ts = QDateTime(), int cnt = 0)
        : timestamp(ts), count(cnt) {}
};

class DailyAlarmChart : public QWidget
{
public:
    explicit DailyAlarmChart(QWidget *parent = nullptr);

    // 设置图表标题
    void setChartTitle(const QString &title);

    // 设置坐标轴标题
    void setAxisTitles(const QString &xTitle, const QString &yTitle);

    // 添加单条报警数据（自动按日期汇总）
    void addAlarmData(const QDateTime &timestamp, int count = 1);

    // 批量添加报警数据
    void addAlarmDataBatch(const QVector<QDateTime> &timestamps);

    // 直接设置已汇总的每日数据
    void setDailyData(const QVector<AlarmDataPoint> &dailyData);

    // 清除所有数据
    void clearData();

    // 更新图表显示
    void updateChart();

    // 设置图表主题颜色
    void setChartColors(const QColor &lineColor, const QColor &pointColor = Qt::red);

private:
    QLabel *m_label;
    QString m_chartTitle;
};

#endif // DAILYALARMCHART_H
